


curvyroad

by futureboy



Category: Andi Mack (TV)
Genre: 5+1 Things, Almost Kiss, Coming Out, First Kiss, Fluff, Fluff and Soft Angst, M/M, staring contest
Language: English
Status: Completed
Published: 2019-05-10
Updated: 2019-05-10
Packaged: 2020-02-29 18:00:23
Rating: General Audiences
Warnings: No Archive Warnings Apply
Chapters: 1
Words: 3,741
Publisher: archiveofourown.org
Story URL: https://archiveofourown.org/works/18783304
Author URL: https://archiveofourown.org/users/futureboy/pseuds/futureboy
Summary: Five times TJ and Cyrus almost kissed, and one time they actually did.





	curvyroad

**Author's Note:**

> Title from Kadie Elder’s ‘First Time He Kissed a Boy’. Also, I would do anything for the happiness of these kids.

 

**1.**

 

Cyrus first gets an inkling for the TJ situation - a _new_ situation, or a more current sitch, if you will - right around the time that TJ gets a shiny upgraded phone.

(Later, Andi and Buffy will try to analyse _exactly_ how many brain cells he has. Cyrus is sure of it. He knows he’s late to the party, but in his defence… Well, it’s really not that many brain cells.)

“It’s just nice to have a fresh start, y’know?” TJ says. He’s throwing his hands around animatedly - the guy likes to move like he’s forgotten limbs are attached to him. Cyrus has never quite gotten the hang of that without injury. Maybe it’s a basketball thing.

“Think about how many photos you’re gonna fill that thing up with,” he grins.

“Yeah, I’ve already started installing all my apps. I got my games, got my 10x10, got-- oh, man, you’re gonna love this-- got a brand new _list app--_ ”

“List app? Lemme see that,” Cyrus says. He tries his best to peer over TJ’s shoulder. “Ooh, I know that one, the colour customisation is real neat.”

“Right? And you can swipe to get rid of stuff on your list. Kinda like you’re crossing it out. Plus, it shows up on your lockscreen, so I don’t even have to open it to see what I gotta do next.”

He proudly shows it off. Cyrus clings to TJ’s arm, craning his neck to see the ticker tape swipe by. _Maths h/w for Thursday. Plan gym lesson for next week. Finish minecraft mansion. Clean room._

“That’s so cool,” Cyrus says earnestly, angling his chin up to make proper eye contact - how will TJ know he’s serious otherwise? Unfortunately for him, TJ looks… embarrassed. His face is tinged all red and he immediately glances away, and Cyrus _knows_ that he’s not imagining this because he’s up real close to see.

“What? What’s wrong?”

TJ shrugs. His new cell slips into his basketball shorts pocket with a swishy noise. “I guess it’s kinda embarrassing to need a list function,” he says. “Eh. Whatever.”

“Oh no,” Cyrus protests, frowning, “not at all! That’s total nonsense. Lists are super useful, all the time, for everyone. Well, not _everyone_ , I’m sure some people can’t use lists at all-- but if it helps, why not?”

His insides go all fluttery when TJ smiles - one side of his grin travels up his face faster than the other side, and Cyrus can’t help but pick up on it every time his friend breaks into the reaction.

“Sure,” TJ says, sounding amused. “Sure… Why not.”

 

* * *

 

**2.**

 

“I’m telling you--”

“Well, don’t tell me!” TJ wheezes, “they would be so _garbage!_ ”

Cyrus clutches his chest in mock-offence. “Garbage?!” he says, outrages, “ _garbage?_ Have you ever _seen_ a chicken, TJ? Have you ever seen them run? Those things would tear you apart and you know it.”

TJ laughs so hard into his knees that the swing chains rattle.

“Come on, TJ. I’m so right. Tell me Jurassic Park wouldn’t strike fear into your heart.”

Straightening his back, TJ drags himself back up into a sitting position on his swing. Cyrus tries not to flush when his head raises, full of laughter and faux-bickering.

“Dinosaurs,” TJ says slowly, “would be _terrible_ with feathers. Not scary at all. Come at me, Goodman.”

His eyebrows raise all on their own, he swears. “You’d fight me on this?”

“Without question,” TJ says, “lizards are great. Feathers are third-rate.”

Cyrus leans in closer:

“You take that back,” he says. He’s completely serious.

“Never.”

“When the park exhibits escape, I hope they get you first.”

“Only because I’d shield you with my body,” TJ reasons, “they’d get you second--”

And it’s at that point that Cyrus realises how close they are. Mirroring each other, actually, with a swing chain on either side and barely half a foot between their faces.

TJ’s eyes flicker down, away from their gaze. His expression’s strangely fallen, compared to how determined he was less than a second ago.

“What,” says Cyrus, and wipes surreptitiously at his mouth. “Is there something on my face?”

“No,” says TJ quickly, leaning backwards. “Just remembering what you look like before you’re mauled to death by history chickens.”

“For the last time!” Cyrus whines, and starts to rock on his heels. “Dinosaurs had _feathers_! You can’t change that, it’s a fact!”

“Can too. Sheer power of belief. You’ve never seen a dinosaur with feathers, so--”

“--You’ve never seen a dinosaur, _period!_ ”

TJ stands on the seat and begins to swing. It’s _so_ on purpose. It’s like he _wants_ Cyrus to shriek even more than he’s already doing.

(He briefly considers telling him that he hates him, but decides the laughter would take away from the impact of the statement.)

 

* * *

 

**3.**

 

Buffy’s mad.

Buffy’s really, _really_ mad.

Cyrus is able to tell this because she just said TJ’s name as two distinctly separate words. Tee Jay. _Tee Jay_ …

**_“TEE JAY!!”_ **

It echoes off the school walls like their footsteps, like thunder, like Cyrus’s poor gay heart when TJ grabs him by the hand and says ‘ohmigod, ohmigod, in here, _quick_!’.

They tumble into the gym - Cyrus is tripping due to a combination of hysteria and poor coordination.

TJ pulls him over the floor, his strides wide and frantic, and shushes him. “Oh, man, in here,” he says hoarsely, and practically throws himself into the storage room. There’s a plasticky noise, kinda like a zipper, as he sandwiches himself between some crash mats, and Cyrus follows.

The mats are the worst sort of very close corridor, and they’re cold as he brushes past. He soon warms up though - the two of them are body heat and exhilaration and just a tiny bit of fear, trying not to move or pant or give themselves away before the game is up.

TJ giggles.

A door slams, not very distantly at all, and he bites his lip to keep it in.

“You’re poking over the top,” Cyrus hisses, and yanks him further into the mats. One big tangled mess of legs, lack of breath, and some stupidity thrown in for good measure.

TJ’s arms are braced around him, trying desperately not to move, as Buffy’s steps draw ever closer - she’s slowing, so they freeze up. All the oxygen’s been sucked out of the room. They’re prey-like.

“I know you’re in here, you two!”

Cyrus brings his finger to his lips.

_Shhh._

“You think I’m gonna forgive this? ‘Cos I’m not! How am I supposed to play basketball in a _baseball_ uniform?! And you even left the _glove_?! Come out and face me, you little--”

He watches as TJ bites down on his knuckles, visibly willing the laughter away. His shoulders are shaking with repressed mirth, and possibly some terror, if Cyrus’s own emotional range is a match.

There’s a brief silence, and the sound of scuffing sneakers, before Buffy’s disembodied voice rings out again:

“I am _so_ gonna get you back for this,” she warns, and finally - _finally_ \- there’s the sound of her retreating from the gym.

Cyrus lets a little giggle escape from his mouth, and rests his forehead on TJ’s outstretched arm.

The taller boy swipes at his cell phone in the vicinity above Cyrus’s head. “I’ll just take _that_ off my to-do list,” he murmurs, the corners of his mouth upturned--

“Oh, no, stop,” Cyrus breathes, tilting his head up, “my ribs hurt so bad. I can’t do this anymore.”

Oh, wow.

He blinks, like it’ll change what he sees, but the image remains the same. TJ’s close to him - like, ‘their feet are alternating’ kind of close. He’s got little tears clinging to his eyelashes from laughing too hard, and his bottom lip has teeth marks in it.

Cyrus takes it all in, and can’t stop the smile from spreading across his face. He really wants to kiss him right now.

But he doesn’t.

“How mad do you think she’s gonna be when she sees us tomorrow?” he mumbles.

TJ pockets his cell phone: “Not as mad as when she realises Andi helped get the baseball costume together,” he snorts.

Cyrus knocks his forehead against TJ’s chest, this time, and he can feel the other boy’s uncontrollable laughter against his shirt.

 

* * *

 

**4.**

 

_Bzz-bzz._

 

**_At swings. Need to talk._ **

 

 **Almost there,** Cyrus types, and tries not to trip over his own feet while texting and walking.

He approaches from behind, and sees TJ’s outline before his face. He’s slouching in the swing seat. His hands are loosely wrapped around the chains, and his feet are dragging over the floor with every minuscule movement he makes.

He just looks _sad_.

“Hey,” says Cyrus, and the whole scene shifts before his eyes - the hands tighten up, the light motion stills, the shoulders square up. He leans forwards more.

“...Hi, Cyrus.”

“I’ve never seen someone tense up and slouch more at the same time,” he remarks, stepping around the frame to take the other seat. “If that were a yoga pose, I’d call it ‘lamentation’ or something. Yeah, that sounds good.”

It’s worth it to get TJ to huff, even cheerlessly, for a second of reprieve. “I’m not gonna take up yoga anytime soon,” he says.

“Nah, me neither. Defeat is a posture. It’s not one I wanna practice.”

He pushes back on his toes. The swing chains creak slightly over their silence, but Cyrus doesn’t want to direct the topic in a direction TJ won’t take it - he’s content to wait until his friend is ready.

TJ rests his face against the chain.

He looks tired.

“I just...”

“Take your time.”

“Yeah. I will. I just,” he says, muffled against his own hand, “I just need you to, I don’t know. _Not_ hate me for this. Whatever it is, anyway.”

And ain’t that a stab in the heart. “I’m not gonna hate you,” Cyrus says, as clearly as he can. “Think about it. We’ve both pulled some fairly stupid stunts in the past, and neither of us hate the other. Right?”

“Right,” says TJ. He laughs again, but it’s all hollow breath.

“...How you feeling?”

“Nervous. Pretty nervous, Cy. Little scared, too.”

“Of?” he presses. (He’s trying to be tentative.)

“Nervous of telling you,” TJ admits, “nervous of telling anyone else… And scared of what I, uh, feel. For… for boys.”

Cyrus’s breath catches in his throat.

“Like, not scared of them,” he continues, gesturing out widely, “or maybe a little, I don’t know. It more that I get _stuff_ , and then I gotta deal with it, and…”

“You’re afraid of your feelings for boys?” Cyrus says softly.

TJ nods, and stills, and looks him in the eye.

“I’m not feeling confident about this, Cyrus,” he declares. “I’m _really_ not. Sometimes I wonder if I’m ever gonna get out of this place, because-- well, I like Shadyside, but it’s _small_ , y’know? There’s not enough of-- of _this_ \--”

“You don’t have to be afraid,” Cyrus says hoarsely, “TJ, listen to me. You’re so valid for how you’re reacting, but _this is nothing to be scared of_. Do you get it?”

TJ juts his chin out. His hands are shaking, and Cyrus would like nothing better than to hold on tight and bring him back to calm reality. “Can we walk?” he says.

And so they stand up, and set off for the park perimeter. Because Cyrus can’t refuse the journey when the request comes from TJ Kippen.

“I don’t know what I’m doing,” TJ confesses. He seems more at ease, now that Cyrus hasn’t reacted in whatever way he might have conjured up internally. “I don’t even know if this is the right decision. Should I tell people? _Can_ I?”

“I’m people.”

“You’re _you_ ,” he points out, “that’s different. You’re a person who’s better than people.”

Cyrus tries not to be too pleased about that particular compliment. “Well,” he starts, “it depends on the situation. Stuff’s different for everyone, y’know? And it’ll be different every time after that, too.”

“Really? You think so?”

Cyrus takes a deep breath, and somewhat succeeds at feigning nonchalance. “When I wanted to come out to someone,” he says, and watches TJ’s eyes briefly widen with the reveal, “I told the most reliable person I had.”

“So did I,” he replies.

Cyrus shoots him a side-glance. “No need to flatter when I’m already spilling trade secrets to you,” he grins.

“I’m serious--”

“So am I,” Cyrus says, pausing their walk to address his friend properly. “I can’t lie to you, Teej, some of this might be really hard. I haven’t gotten that far yet, but that’s just life. And if anyone makes you feel like you’ve gotta be afraid of being gay, then they don’t deserve any of your attention at all.”

There’s a beat. TJ opens his mouth, and closes it again.

“Or bi,” Cyrus adds. “Sorry for assuming.”

He starts to play with the drawstrings on his hoodie. “You’re something else, you know that?”

“Totally new information for me, there,” Cyrus says flatly.

“No, that’s-- I meant, _thanks_ , Cyrus,” he says, firmly, “just, thank you for _everything_ , because I was totally worried about this, and now I kinda feel… Well, fine.”

Cyrus falls into step beside him when they start up again, heading past the pond and slowly dodging the planters. “You sound surprised about that,” he remarks.

“I am,” TJ says. “I wasn’t expecting to. I’m glad I said something.”

“Me too,” says Cyrus, and means it.

“Got any other good advice for me?”

“Well,” Cyrus shrugs, “I definitely have limited experience here. I guess I _could_ take you by the hands and tell you ‘everything’s gonna be okay’, but... it doesn’t really feel like your style.”

TJ smirks. “No, I’m down with that.”

So Cyrus stops in his tracks, immediately reaching for TJ’s hands. It’s easy to commit to it. He slides down his wrist until he meets warm palms and rough knuckles and surprise, and with as much strength as he can muster, he fixes TJ with a steady stare.

“TJ?”

“...Yeah?”

“Everything’s going to be okay,” Cyrus says.

TJ squeezes his hands. For the first time all day, he smiles for real.

“Thanks,” he says quietly.

He looks tall.

 

* * *

 

**5.**

 

“...”

“...”

“......HAH!”

“Aw, no!” Andi groans, slamming her hand on the table, “I was _so_ close! Are you sure you’re not a bird with like, those clear eyelids?”

“Definitely not a bird,” TJ says, amused. “Just good at what I do.”

Cyrus frowns.

He’s the only one standing up, and the only one with his bag still hanging off his shoulder, because he’s the only one who got out of class late. “What exactly are you guys up to?” he asks, eyes narrowed. “Because you _kind_ of look like you’re starting a teenage hypnotism cult.”

“Staring contest,” explains Jonah. “He beat Buffy… Then he _trampled_ me.”

Buffy slaps his arm. “Dude! He’s not gonna be able to get through the cafeteria doors if his head gets any bigger.”

“Not if Cyrus wins,” says Andi, grinning like the Cheshire Cat and herding Cyrus into the seat opposite. “Eyes like iron! Will of steel! I know who I’m rooting for--”

“Woah, woah, wait, I didn’t agree to this,” Cyrus protests, as Jonah mutters something about ‘being on TJ’s team for this one’.

TJ’s eyes twinkle with mischief as the others bustle around them, preparing to watch the match: “don’t worry,” he says quietly, “I’ll go easy on you, Underdog.”

He shuffles in his designated patch of bench to get comfortable. “Oy vavoy, not on my watch, you won’t,” he retorts, putting his arms behind his back as the others cheer, “come at me with all you’ve got, Kippen. I can take it. I’m so ready for this.”

TJ doesn’t respond, but just as the two of them them squeeze their eyes shut, Cyrus catches a glimpse of a smirk.

“You ready?” asks Jonah.

Buffy punctuates her countdown with open-palmed hits on the table: “three, two, one, GO--”

And Cyrus opens his eyes, only to come face-to-face with a pretty strange sight.

It starts well - he can hear Buffy next to him chanting ‘come on Cyrus, come on Cyrus’ under her breath, but he doesn’t dare look away from TJ’s startlingly green eyes. It’s sorta weird to have that attention solely focused on him like this, but he fights back the expressions he wants to make and concentrates on not smiling and ruining it.

And TJ?

Well, he _was_ smiling, but the longer they sit there, the more the sentiment slides from his face. His sight starts flicking between Cyrus’s left and right eyes, like he might find something there. It’s almost relaxation, like he’s thinking about something else totally, and Cyrus battles the compulsion to squirm in his seat under the pressure. He wets his lips. He can’t lose, not now. It’s a matter of principle--

TJ’s eyelashes flicker, once-twice-thrice in the tiniest movement, and he glances at Cyrus’s mouth.

“HA!” yells Andi, smacking the table and making them all jump. “You looked away! TJ loses! Cyrus is the champion!”

“But I beat all three of you! I have two more wins than Cyrus does.”

“Yeah, but if he beat _you_ ,” Jonah points out, “then he also beats everyone that you beat.”

TJ frowns hard against that logic, so over the noise of Andi and Buffy cheering, Cyrus knocks his knee under the table:

“Sorry I dethroned you,” he grins.

And TJ leans in conspiratorially. The smile that had slipped in the match returns full force. “Not at all, your Highness,” he shoots back, tapping the top of Cyrus’s shoe with the toe of his sneaker.

The next cafeteria tournament is quickly revealed to be a footsie war.

 

* * *

 

**+1.**

 

_Milk for dad’s cooking._

 

There’s an idle scratching as TJ fills out the boxes in his latest workbook. Cyrus has both elbows on the desk, waiting for the allotted time to run out - to fill the empty space, he’s watching the countdown on TJ’s lockscreen.

 

_New basketball shorts._

 

The to-do list is on display above it. The tasks roll by like ticker tape; Cyrus observes.

 

_Playlist of good guitar solos for Jonah._

 

“Doing okay?”

“In a real test,” TJ says, frowning at question twenty-six, “I wouldn’t be allowed to answer that.”

“Good job it’s not a real test, then,” Cyrus teases. “So don’t stress about it. ‘Kay?”

A nod, and more scratching. He restarts the question twice before reaching the conclusion he’s after, and when their legs knock together under the table, neither of them move away.

 

_Mow the backyard._

_Clean room (again)._

_Tell Cyrus._

 

“You can tick that off,” Cyrus says.

“Hm?”

He swipes back on the ticker tape: “on your list. _Tell Cyrus_. You’ve done that. I’m super proud of you, by the way--”

TJ _blanches_. “Oh,” he says, scrambling for his cell phone - Cyrus watches with rapt horror as the blood completely drains from his face - “yeah, haha, I guess I can...”

“Teej? You okay?”

“What? Nahh,” he says, too quickly. “I mean. Yeah! Yeah, I’m fine.”

Cyrus softens. He feels it creep into his voice when he next pipes up. “If there’s something else,” he says, “then don’t feel obligated to tell me.. You don’t have to do or say anything that you don’t wanna do.”

TJ’s pencil clatters when it hits the table. “I don’t deserve you,” he mumbles, and starts to play with his hands. Twisting fingertip over fingertip. His test lies wide open and ignored.

Something doesn’t add up.

“What are you talking about?”

“You’re just so _patient_ ,” he says, throwing exasperated arms out. “Even when I’m being a jerk or when I don’t tell you important stuff, you’re always ready when I am. _Always_.”

“Of course I am! Like, I wanna know, sure,” says Cyrus, “but I’m not gonna make you feel _bad_ about it. You don’t share experiences with people by _obligation_ , you do it because you want to _._ I’m here ‘cos I like what you have to say. I’m not gonna up and leave you _now_.”

“...This is why I like you so much,” TJ says softly.

Oh.

He’s still playing with his hands, fiddling with a hangnail on his pinkie finger. Cyrus rips his eyes away from it to assess TJ’s expression.

“Is that what you wanted to tell me?” he asks. He’s holding his breath. He’s in disbelief over this whole thing. It can’t be real.

It just can’t.

But then TJ nods miserably.

“I’m really sorry, Cyrus,” he whispers, on the verge of tears--

And Cyrus laughs.

It’s more of a very _very_ small giggle, to be honest, more air than voice, but it escapes against his will and now it’s out in the open. “You’re _sorry_?” he asks, biting his lip, “TJ, are you for real right now?”

“Wh… What do you mean?”

The reaction’s shocked the sadness right out of TJ’s face. Now he’s just _bewildered_. He queries in an almost suspicious manner, as though he doesn’t dare to hope at all.

Which is just _ridiculous_.

He’s kind of freaking out right now. TJ likes him. TJ Kippen _likes_ him. Hotheaded and strong TJ, who’s determined to grow and who’s cool as anything and who’s kind of a gigantic dork, had to write his love confession on a list of chores to even _consider_ taking a chance on their friendship.

“Ohmigosh,” Cyrus says, “just--”

And he reaches for TJ’s face and draws their lips together.

TJ’s math book crashes open-paged onto the floor, swept off the desk by enthusiastic arm movements, as he twists in his chair and scrabbles for somewhere on Cyrus’s shirt to cling to. It’s brief, but at the same time, they only back up because TJ’s chair grates across the floor, and the resulting metallic screech brings them back down to Earth.

Cyrus cracks his eyes open. Their faces are still remarkably close.

He feels like he’s _radiating_ a blush, too.

“I am _so_ confused right now,” TJ says breathlessly.

“Tell me about it,” says Cyrus, every word filtered through a huge smile, “now it’s a _really_ good job this isn’t a real test--”

TJ fully laughs at that. “Shut up, Cyrus,” he beams, his smile uncontrollable and sweet.

And just to be sure that Cyrus will actually stop talking, he braces his hands on Cyrus’s knees, leans way in, and kisses him again.

(Cyrus doesn’t say another word.)

**Author's Note:**

> I'm on tumblr @futureboy / @futureboy-ao3 - come say hi!
> 
> Kudoses, commentses, and subs are always welcomed. Thanks for reading ♥


End file.
